// 自定义组件js
Component({
    properties: {
        len: { // 属性名
            type: Number, // 类型（必填），目前接受的类型包括：String, Number, Boolean, Object, Array, null（表示任意类型）
            value: 0, // 属性初始值（必填）
        },
        pagesize:{
            type: Number, // 类型（必填），目前接受的类型包括：String, Number, Boolean, Object, Array, null（表示任意类型）
            value: 0, // 属性初始值（必填）
        }
    },

    data: {
        pagelist:[1],
        rellist:[1],
        activeidx:1,
        jiange:1,
    }, // 私有数据，可用于模板渲染

    // 生命周期函数，可以为函数，或一个在methods段中定义的方法名
    attached: function () {
    
    },

    detached: function () {},

    methods: {
        pageliHandle:function(e){
            // console.log(e.currentTarget.dataset.idx)
            if(e.currentTarget.dataset.idx!='...'){
                this.setData({
                    activeidx:e.currentTarget.dataset.idx
                })
                this.sort(e.currentTarget.dataset.idx)
            }
        },
        prev:function(){
            var pagelist = this.data.pagelist;
            var activeidx = this.data.activeidx-1;
            // console.log(activeidx,pagelist[0])
            if(activeidx >= pagelist[0]){
                this.setData({
                    activeidx
                })
                this.sort(activeidx)
            }
        },
        next:function(){
            var pagelist = this.data.pagelist;
            var activeidx = this.data.activeidx+1;
            if(activeidx <= pagelist[pagelist.length - 1]){
                this.setData({
                    activeidx
                })
                this.sort(activeidx)
            }
        },
        sort:function(idxs){ //整理
            var idx = idxs-1;
            var jiange = this.data.jiange;
            var rellist = this.data.rellist;
            var pagelist = []
            if(rellist.length > 5){
                if(jiange<idx+1){
                    pagelist.push(rellist[0])
                }
                if(rellist[idx-jiange]>rellist[0+jiange]){
                    pagelist.push('...')
                    var s = (idx+jiange)<(rellist.length-1)?idx+jiange:idx>=rellist.length-1?idx-1:idx
                    for(var i = idx-jiange;i<=s;i++){
                        // console.log(i)
                        pagelist.push(rellist[i])
                    }
                    if(rellist[idx+jiange]<rellist[rellist.length-1-jiange]){
                        pagelist.push('...')
                        pagelist.push(rellist[rellist.length-1])
                    }else{
                        pagelist.push(rellist[rellist.length-1])
                    }
                }else{
                    for(var i = idx-jiange>=jiange?idx-jiange:idx;i<=idx+jiange;i++){
                        pagelist.push(rellist[i])
                    }
                    pagelist.push('...')
                    pagelist.push(rellist[rellist.length-1])
                }
                this.setData({
                    pagelist
                })
                // console.log(pagelist)
            }else{
                this.setData({
                    pagelist:rellist
                })
            }
            this.triggerEvent('setPage',idxs)
        },
        change_rellist:function(len,pagesize){
            // console.log(len,pagesize)
            if(len<=pagesize){
                this.setData({
                    activeidx:1,
                    rellist:[1]
                })
            }else{
                var page_num = Math.ceil(len/pagesize);
                var rellist = [];
                for(var i = 1;i<=page_num;i++){
                    rellist.push(i)
                }
                this.setData({
                    activeidx:1,
                    rellist
                })
            }
            this.sort(1)
        }
    }
});